<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Bluetooth LE Mesh Library: Mesh Battery Server</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen_style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><a href="http://www.cypress.com/"><img alt="Logo" src="IFXCYP_one-line.png"/></a></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Bluetooth LE Mesh Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__wiced__bt__mesh__battery__server.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Mesh Battery Server<div class="ingroups"><a class="el" href="group__wiced__bt__mesh.html">LE Mesh</a> &raquo; <a class="el" href="group__wiced__bt__mesh__models.html">Mesh Models Library API</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">General Description</h2>
<p>The AIROC Mesh Battery Server module provides a way for a client to retrieve the Battery status of this device. </p>
<p>The Server Model can also be configured by a Provisioner to allow sending the Status message to a specific node or group of nodes.</p>
<p>On startup the application should call wiced_bt_mesh_model_battery_server_init function providing the callback that will be called when a request for the battery status is received. The application should call the wiced_bt_mesh_battery_server_send_status function in response to a get request, or when application logic requires battery status to be sent out. In the latter case the message will be sent out only if device is configured remotely with the destination address where the battery status should be sent to and the application key to be used to secure the message. </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gae0cd5376996e39e0bb67a93955fef9e3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wiced__bt__mesh__battery__server.html#gae0cd5376996e39e0bb67a93955fef9e3">WICED_BT_MESH_MODEL_BATTERY_SERVER</a>&#160;&#160;&#160;{ MESH_COMPANY_ID_BT_SIG, WICED_BT_MESH_CORE_MODEL_ID_GENERIC_BATTERY_SRV, <a class="el" href="group__wiced__bt__mesh__battery__server.html#gad2e1906984d49ae51d8c4dd50f6f9ac4">wiced_bt_mesh_model_battery_server_message_handler</a>, NULL, NULL }</td></tr>
<tr class="memdesc:gae0cd5376996e39e0bb67a93955fef9e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mesh Battery Server Device.  <a href="#gae0cd5376996e39e0bb67a93955fef9e3">More...</a><br /></td></tr>
<tr class="separator:gae0cd5376996e39e0bb67a93955fef9e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga04a23954ca02382adc8547bfc6e95985"><td class="memItemLeft" align="right" valign="top">typedef void()&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wiced__bt__mesh__battery__server.html#ga04a23954ca02382adc8547bfc6e95985">wiced_bt_mesh_battery_server_callback_t</a>(uint16_t event, <a class="el" href="structwiced__bt__mesh__event__t.html">wiced_bt_mesh_event_t</a> *p_event)</td></tr>
<tr class="memdesc:ga04a23954ca02382adc8547bfc6e95985"><td class="mdescLeft">&#160;</td><td class="mdescRight">Battery Server callback.  <a href="#ga04a23954ca02382adc8547bfc6e95985">More...</a><br /></td></tr>
<tr class="separator:ga04a23954ca02382adc8547bfc6e95985"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga72e2d728400284190cf28756e5b952f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wiced__bt__mesh__battery__server.html#ga72e2d728400284190cf28756e5b952f4">wiced_bt_mesh_model_battery_server_init</a> (<a class="el" href="group__wiced__bt__mesh__battery__server.html#ga04a23954ca02382adc8547bfc6e95985">wiced_bt_mesh_battery_server_callback_t</a> *p_callback, wiced_bool_t is_provisioned)</td></tr>
<tr class="memdesc:ga72e2d728400284190cf28756e5b952f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Battery Server Module initialization.  <a href="#ga72e2d728400284190cf28756e5b952f4">More...</a><br /></td></tr>
<tr class="separator:ga72e2d728400284190cf28756e5b952f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad2e1906984d49ae51d8c4dd50f6f9ac4"><td class="memItemLeft" align="right" valign="top">wiced_bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wiced__bt__mesh__battery__server.html#gad2e1906984d49ae51d8c4dd50f6f9ac4">wiced_bt_mesh_model_battery_server_message_handler</a> (<a class="el" href="structwiced__bt__mesh__event__t.html">wiced_bt_mesh_event_t</a> *p_event, uint8_t *p_data, uint16_t data_len)</td></tr>
<tr class="memdesc:gad2e1906984d49ae51d8c4dd50f6f9ac4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Battery Server Message Handler.  <a href="#gad2e1906984d49ae51d8c4dd50f6f9ac4">More...</a><br /></td></tr>
<tr class="separator:gad2e1906984d49ae51d8c4dd50f6f9ac4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf8305491af7a945d77439e1e4cfd1a33"><td class="memItemLeft" align="right" valign="top">wiced_result_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wiced__bt__mesh__battery__server.html#gaf8305491af7a945d77439e1e4cfd1a33">wiced_bt_mesh_battery_server_send_status</a> (<a class="el" href="structwiced__bt__mesh__event__t.html">wiced_bt_mesh_event_t</a> *p_event, <a class="el" href="structmesh__battery__event__t.html">mesh_battery_event_t</a> *p_data)</td></tr>
<tr class="memdesc:gaf8305491af7a945d77439e1e4cfd1a33"><td class="mdescLeft">&#160;</td><td class="mdescRight">The application can call this function to send status message to the Battery Client.  <a href="#gaf8305491af7a945d77439e1e4cfd1a33">More...</a><br /></td></tr>
<tr class="separator:gaf8305491af7a945d77439e1e4cfd1a33"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gae0cd5376996e39e0bb67a93955fef9e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae0cd5376996e39e0bb67a93955fef9e3">&#9670;&nbsp;</a></span>WICED_BT_MESH_MODEL_BATTERY_SERVER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define WICED_BT_MESH_MODEL_BATTERY_SERVER&#160;&#160;&#160;{ MESH_COMPANY_ID_BT_SIG, WICED_BT_MESH_CORE_MODEL_ID_GENERIC_BATTERY_SRV, <a class="el" href="group__wiced__bt__mesh__battery__server.html#gad2e1906984d49ae51d8c4dd50f6f9ac4">wiced_bt_mesh_model_battery_server_message_handler</a>, NULL, NULL }</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Mesh Battery Server Device. </p>
<p>The device can exist standalone, but usually is combined with other battery powered devices. </p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga04a23954ca02382adc8547bfc6e95985"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga04a23954ca02382adc8547bfc6e95985">&#9670;&nbsp;</a></span>wiced_bt_mesh_battery_server_callback_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void() wiced_bt_mesh_battery_server_callback_t(uint16_t event, <a class="el" href="structwiced__bt__mesh__event__t.html">wiced_bt_mesh_event_t</a> *p_event)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Battery Server callback. </p>
<p>The Battery Server callback is called by the Mesh Models library on receiving a get message from the peer</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">event</td><td>The event that the application should process (see <a class="el" href="wiced__bt__mesh__models_8h.html#BATTERY_EVENT">Mesh Battery Events</a>) </td></tr>
    <tr><td class="paramname">p_event</td><td>information about the message received. The same pointer should be used in the reply if required.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga72e2d728400284190cf28756e5b952f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga72e2d728400284190cf28756e5b952f4">&#9670;&nbsp;</a></span>wiced_bt_mesh_model_battery_server_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void wiced_bt_mesh_model_battery_server_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__wiced__bt__mesh__battery__server.html#ga04a23954ca02382adc8547bfc6e95985">wiced_bt_mesh_battery_server_callback_t</a> *&#160;</td>
          <td class="paramname"><em>p_callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">wiced_bool_t&#160;</td>
          <td class="paramname"><em>is_provisioned</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Battery Server Module initialization. </p>
<p>Application should call this function during startup to register a callback which will be executed when received message requires application processing.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p_callback</td><td>The application callback function that will be executed by the mesh models library when application action is required, or when a reply for the application request has been received. </td></tr>
    <tr><td class="paramname">is_provisioned</td><td>If TRUE, the application is being restarted after being provisioned or after a power loss. If FALSE the model cleans up NVRAM on startup.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>WICED_TRUE if initialization was successful </dd></dl>

</div>
</div>
<a id="gad2e1906984d49ae51d8c4dd50f6f9ac4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad2e1906984d49ae51d8c4dd50f6f9ac4">&#9670;&nbsp;</a></span>wiced_bt_mesh_model_battery_server_message_handler()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">wiced_bool_t wiced_bt_mesh_model_battery_server_message_handler </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwiced__bt__mesh__event__t.html">wiced_bt_mesh_event_t</a> *&#160;</td>
          <td class="paramname"><em>p_event</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>p_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>data_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Battery Server Message Handler. </p>
<p>Application can call this models library function to process a message received from the Battery Client. The function parses the message and if appropriate calls the application back to perform functionality.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p_event</td><td>Mesh event with information about received message. </td></tr>
    <tr><td class="paramname">p_data</td><td>Pointer to the data portion of the message </td></tr>
    <tr><td class="paramname">data_len</td><td>Length of the data in the message</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>WICED_TRUE if the message is for this company ID/Model combination, WICED_FALSE otherwise. </dd></dl>

</div>
</div>
<a id="gaf8305491af7a945d77439e1e4cfd1a33"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf8305491af7a945d77439e1e4cfd1a33">&#9670;&nbsp;</a></span>wiced_bt_mesh_battery_server_send_status()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">wiced_result_t wiced_bt_mesh_battery_server_send_status </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structwiced__bt__mesh__event__t.html">wiced_bt_mesh_event_t</a> *&#160;</td>
          <td class="paramname"><em>p_event</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmesh__battery__event__t.html">mesh_battery_event_t</a> *&#160;</td>
          <td class="paramname"><em>p_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The application can call this function to send status message to the Battery Client. </p>
<p>The mesh event should contain information if this is a reply or an unsolicited message.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p_event</td><td>Mesh event with the information about the message that has been received in the request, or created by the app for unsolicited message. </td></tr>
    <tr><td class="paramname">p_data</td><td>Pointer to the Battery data</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>WICED_BT_SUCCESS if message has been queued for transmission. </dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath">
    <ul>
        <li class="footer">
            Generated for <b>Bluetooth LE Mesh Library</b> by <b>Cypress Semiconductor Corporation</b>.
            All rights reserved.
        </li>
    </ul>
</div>
</body>
</html>
